<?php
declare (strict_types = 1);

namespace app\shop\middleware;

use think\facade\Session;
use think\facade\Log;

class Check
{
    /**
     * 处理请求
     *
     * @param \think\Request $request
     * @param \Closure       $next
     * @return Response
     */
    public function handle($request, \Closure $next)
    {
        // 添加一些验证 用户是否登录 前置中间件 请求还未到达控制器
        if (!Session::has('username')) {
            return  redirect('/shop/login');
        }
        // 登录成功之后必须返回Response实例
        $response =  $next($request);// 返回的结果

        // 后置中间件、请求处理完毕、还未响应到客户端 例如： 记录日志
        Log::info("请求处理结束后、记录的信息");
        return  $response;

    }
}
